{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Log Anomlay Detector Core Mininimal Implementation\n",
    "\n",
    "In an effort to help new users and contributors understand the core Machine Learning elements of the log anomaly detector I have decided to recreate a streamlined minimal version. Here we will ignore any streaming or external aspect of our data and use a fixed local data file for simplicity and reproducability.   \n",
    "\n",
    "This notebook will cover:\n",
    "* Log Preprocessing\n",
    "* Text Encoding\n",
    "* Model Training\n",
    "* Generating Anomlay Scores\n",
    "* Model Inference /Prediction\n",
    "\n",
    "For the most part function names have been made to match their relevent counter part in the larger code base.\n",
    "\n",
    "My aim for this notebook is that, by the end a reader will 1) have a clear understanding of how the current implementation works and 2) know where to make changes to try another approach. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import our packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import time\n",
    "import numpy as np\n",
    "import logging\n",
    "import sompy\n",
    "from multiprocessing import Pool\n",
    "from itertools import product\n",
    "import pandas as pd\n",
    "import re\n",
    "import gensim as gs\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.spatial.distance import cosine\n",
    "from sklearn.preprocessing import normalize\n",
    "\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define our Functions\n",
    "\n",
    "#### 1. Log Preprocesing\n",
    "\n",
    "One assumption that all these functions use is that we instantly convert our data into a pandas dataframe that has a \"message\" column containing the relevent information for us. \n",
    "\n",
    "We then treat each individual log line as a \"word\", cleaning it by removing all non-alphabet charcters including white spaces. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def _preprocess(data):\n",
    "    for col in data.columns:\n",
    "        if col == \"message\":\n",
    "            data[col] = data[col].apply(_clean_message)\n",
    "        else:\n",
    "            data[col] = data[col].apply(to_str)\n",
    "\n",
    "    data = data.fillna(\"EMPTY\")\n",
    "    \n",
    "def _clean_message(line):\n",
    "    \"\"\"Remove all none alphabetical characters from message strings.\"\"\"\n",
    "    return \"\".join(\n",
    "        re.findall(\"[a-zA-Z]+\", line)\n",
    "    )  # Leaving only a-z in there as numbers add to anomalousness quite a bit\n",
    "\n",
    "def to_str(x):\n",
    "    \"\"\"Convert all non-str lists to string lists for Word2Vec.\"\"\"\n",
    "    ret = \" \".join([str(y) for y in x]) if isinstance(x, list) else str(x)\n",
    "    return ret"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. Text Encoding  \n",
    "\n",
    "Here we employ the gensim implementation of Word2Vec to encode our logs as fixed length numerical vectors. Logs are noteably not the natural usecase for word2vec, but this appraoch attemps to leverage the fact that logs lines themselves, like words, have a context, so encoding a log based on its co-occurence with other logs does make some intuitive sense."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def create(words, vector_length, window_size):\n",
    "    \"\"\"Create new word2vec model.\"\"\"\n",
    "    w2vmodel = {}\n",
    "    for col in words.columns:\n",
    "        if col in words:\n",
    "            w2vmodel[col] = gs.models.Word2Vec([list(words[col])], min_count=1, size=vector_length, \n",
    "                                     window=window_size, seed=42, workers=1, iter=550,sg=0)\n",
    "        else:\n",
    "            #_LOGGER.warning(\"Skipping key %s as it does not exist in 'words'\" % col)\n",
    "            pass\n",
    "        \n",
    "    return w2vmodel\n",
    "\n",
    "def one_vector(new_D, w2vmodel):\n",
    "    \"\"\"Create a single vector from model.\"\"\"\n",
    "    transforms = {}\n",
    "    for col in w2vmodel.keys():\n",
    "        if col in new_D:\n",
    "            transforms[col] = w2vmodel[col].wv[new_D[col]]\n",
    "\n",
    "    new_data = []\n",
    "\n",
    "    for i in range(len(transforms[\"message\"])):\n",
    "        logc = np.array(0)\n",
    "        for _, c in transforms.items():\n",
    "            if c.item(i):\n",
    "                logc = np.append(logc, c[i])\n",
    "            else:\n",
    "                logc = np.append(logc, [0, 0, 0, 0, 0])\n",
    "        new_data.append(logc)\n",
    "\n",
    "    return np.array(new_data, ndmin=2)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3. Model Training\n",
    "\n",
    "Here we employ the SOMPY implementation of the Self-Organizing Map to train our model. This function simply makes it a bit easier for the user to interact with the sompy training requirements. This function returns a trained model.\n",
    "\n",
    "The trained model object also has a method called codebook.matrix() which allows the user access directly to the trained self organizing map itself. If the map successfull converged then it should consist of nodes in our N-dimensional log space that are well ordered and provide an approximation to the topology of the logs in our training set.\n",
    "\n",
    "During training we also, compute the distances of our training data to the trained map as a baseline to build a threashold.   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def train(inp, map_size, iterations, parallelism):\n",
    "    print(f'training dataset is of size {inp.shape[0]}')\n",
    "    mapsize = [map_size, map_size]\n",
    "    np.random.seed(42)\n",
    "    som = sompy.SOMFactory.build(inp, mapsize , initialization='random')\n",
    "    som.train(n_job=parallelism, train_rough_len=100,train_finetune_len=5)\n",
    "    model = som.codebook.matrix.reshape([map_size, map_size, inp.shape[1]])\n",
    "    \n",
    "    #distances = get_anomaly_score(inp, 8, model)\n",
    "    #threshold = 3*np.std(distances) + np.mean(distances)\n",
    "    \n",
    "    return som #,threshold"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4. Generating Anomaly Scores\n",
    "\n",
    "One of the key elements of this approach is quantifying the distance between our logs and the nodes on our self organizing map. The two functions below, taken together, represent a parrallel implementation for performing this calculaton.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_anomaly_score(logs, parallelism, model):\n",
    "\n",
    "    parameters = [[x,model] for x in logs]\n",
    "    pool = Pool(parallelism)\n",
    "    dist = pool.map(calculate_anomaly_score, parameters) \n",
    "    pool.close()\n",
    "    pool.join()\n",
    "    #dist = [] \n",
    "    #for log in logs:\n",
    "    #    dist.append(calculate_anomaly_score(log,model))\n",
    "    \n",
    "    return dist\n",
    "\n",
    "def calculate_anomaly_score(parameters):\n",
    "    log = parameters[0]\n",
    "    model = parameters[1]\n",
    "    \"\"\"Compute a distance of a log entry to elements of SOM.\"\"\"\n",
    "    dist_smallest = np.inf\n",
    "    for x in range(model.shape[0]):\n",
    "        for y in range(model.shape[1]):\n",
    "            dist = cosine(model[x][y],log) \n",
    "            #dist = np.linalg.norm(model[x][y] - log)\n",
    "            if dist < dist_smallest:\n",
    "                dist_smallest = dist\n",
    "    return dist_smallest\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 5. Model Inference / Prediction\n",
    "\n",
    "Here we are making an inference about a new log message. This is done by scoring the incoming log and evaluating whether or not it passess a certain threshold value.  \n",
    "\n",
    "\n",
    "Ideally our word2vec has been monitoring our application long enough to have seen all the logs. So, if we get a known log we can simply look up its vector representation   \n",
    "\n",
    "One downside with word2vec is that its quite brittle when it comes to incorporating words that haven't been seen before. In this example, we will retrain the W2Vmodel if our new log has not been seen by the before.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def infer(w2v, som, log, data, threshold):\n",
    "    \n",
    "    log =  pd.DataFrame({\"message\":log},index=[1])\n",
    "    _preprocess(log)\n",
    "    \n",
    "    if log.message.iloc[0] in list(w2v['message'].wv.vocab.keys()):\n",
    "        vector = w2v[\"message\"].wv[log.message.iloc[0]]\n",
    "    else:\n",
    "        w2v = gs.models.Word2Vec([[log.message.iloc[0]] + list(data[\"message\"])], \n",
    "                                 min_count=1, size=100, window=3, seed=42, workers=1, iter=550, sg=0)\n",
    "        vector = w2v.wv[log.message.iloc[0]]\n",
    "    \n",
    "    score = get_anomaly_score([vector], 1, som)\n",
    "    \n",
    "    if score < threshold:\n",
    "        return 0, score\n",
    "    else:\n",
    "        return 1, score\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Implementation\n",
    "\n",
    "First we read in our test dataset and preprocesses. Here was can see this is a rather small example, with 10,000 log lines, but only 3 unique log messages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_path = r\"/Users/Martu/Downloads/log-anomaly-detector-master/validation_data/log_anomaly_detector-10000-events.json\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_json(data_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>message</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       message\n",
       "0  DEBUGProcessedoutofpackages\n",
       "1  DEBUGProcessedoutofpackages\n",
       "2  DEBUGProcessedoutofpackages\n",
       "3  DEBUGProcessedoutofpackages\n",
       "4  DEBUGProcessedoutofpackages"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_preprocess(data)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>message</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>9995</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9996</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9997</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9998</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9999</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          message\n",
       "9995  DEBUGProcessedoutofpackages\n",
       "9996  DEBUGProcessedoutofpackages\n",
       "9997  DEBUGProcessedoutofpackages\n",
       "9998  DEBUGProcessedoutofpackages\n",
       "9999  DEBUGProcessedoutofpackages"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DEBUGProcessedoutofpackages 9786\n",
      "ThreadodcsserverINFOComposetypestatedoneComposedone 213\n",
      "rootCMDusrlocalbinmonitorapachestatsshdevnull 1\n"
     ]
    }
   ],
   "source": [
    "x = data.message.value_counts()\n",
    "for i in x.keys():\n",
    "    print(i, x[i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>message</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9970</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9971</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9972</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9973</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9974</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9975</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9976</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9977</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9978</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9979</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9980</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9981</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9982</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9983</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9984</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9985</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9986</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9987</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9988</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9989</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9990</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9991</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9992</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9993</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9994</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9995</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9996</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9997</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9998</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9999</th>\n",
       "      <td>DEBUGProcessedoutofpackages</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>10000 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                          message\n",
       "0     DEBUGProcessedoutofpackages\n",
       "1     DEBUGProcessedoutofpackages\n",
       "2     DEBUGProcessedoutofpackages\n",
       "3     DEBUGProcessedoutofpackages\n",
       "4     DEBUGProcessedoutofpackages\n",
       "5     DEBUGProcessedoutofpackages\n",
       "6     DEBUGProcessedoutofpackages\n",
       "7     DEBUGProcessedoutofpackages\n",
       "8     DEBUGProcessedoutofpackages\n",
       "9     DEBUGProcessedoutofpackages\n",
       "10    DEBUGProcessedoutofpackages\n",
       "11    DEBUGProcessedoutofpackages\n",
       "12    DEBUGProcessedoutofpackages\n",
       "13    DEBUGProcessedoutofpackages\n",
       "14    DEBUGProcessedoutofpackages\n",
       "15    DEBUGProcessedoutofpackages\n",
       "16    DEBUGProcessedoutofpackages\n",
       "17    DEBUGProcessedoutofpackages\n",
       "18    DEBUGProcessedoutofpackages\n",
       "19    DEBUGProcessedoutofpackages\n",
       "20    DEBUGProcessedoutofpackages\n",
       "21    DEBUGProcessedoutofpackages\n",
       "22    DEBUGProcessedoutofpackages\n",
       "23    DEBUGProcessedoutofpackages\n",
       "24    DEBUGProcessedoutofpackages\n",
       "25    DEBUGProcessedoutofpackages\n",
       "26    DEBUGProcessedoutofpackages\n",
       "27    DEBUGProcessedoutofpackages\n",
       "28    DEBUGProcessedoutofpackages\n",
       "29    DEBUGProcessedoutofpackages\n",
       "...                           ...\n",
       "9970  DEBUGProcessedoutofpackages\n",
       "9971  DEBUGProcessedoutofpackages\n",
       "9972  DEBUGProcessedoutofpackages\n",
       "9973  DEBUGProcessedoutofpackages\n",
       "9974  DEBUGProcessedoutofpackages\n",
       "9975  DEBUGProcessedoutofpackages\n",
       "9976  DEBUGProcessedoutofpackages\n",
       "9977  DEBUGProcessedoutofpackages\n",
       "9978  DEBUGProcessedoutofpackages\n",
       "9979  DEBUGProcessedoutofpackages\n",
       "9980  DEBUGProcessedoutofpackages\n",
       "9981  DEBUGProcessedoutofpackages\n",
       "9982  DEBUGProcessedoutofpackages\n",
       "9983  DEBUGProcessedoutofpackages\n",
       "9984  DEBUGProcessedoutofpackages\n",
       "9985  DEBUGProcessedoutofpackages\n",
       "9986  DEBUGProcessedoutofpackages\n",
       "9987  DEBUGProcessedoutofpackages\n",
       "9988  DEBUGProcessedoutofpackages\n",
       "9989  DEBUGProcessedoutofpackages\n",
       "9990  DEBUGProcessedoutofpackages\n",
       "9991  DEBUGProcessedoutofpackages\n",
       "9992  DEBUGProcessedoutofpackages\n",
       "9993  DEBUGProcessedoutofpackages\n",
       "9994  DEBUGProcessedoutofpackages\n",
       "9995  DEBUGProcessedoutofpackages\n",
       "9996  DEBUGProcessedoutofpackages\n",
       "9997  DEBUGProcessedoutofpackages\n",
       "9998  DEBUGProcessedoutofpackages\n",
       "9999  DEBUGProcessedoutofpackages\n",
       "\n",
       "[10000 rows x 1 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Encode our logs\n",
    "\n",
    "We then create our w2vmodel based on our preprocessed dataset and replace our log lines with thier vectorized representation. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "collecting all words and their counts\n",
      "PROGRESS: at sentence #0, processed 0 words, keeping 0 word types\n",
      "collected 3 word types from a corpus of 10000 raw words and 1 sentences\n",
      "Loading a fresh vocabulary\n",
      "effective_min_count=1 retains 3 unique words (100% of original 3, drops 0)\n",
      "effective_min_count=1 leaves 10000 word corpus (100% of original 10000, drops 0)\n",
      "deleting the raw counts dictionary of 3 items\n",
      "sample=0.001 downsamples 2 most-common words\n",
      "downsampling leaves estimated 379 word corpus (3.8% of prior 10000)\n",
      "estimated required memory for 3 words and 100 dimensions: 3900 bytes\n",
      "resetting layer weights\n",
      "training model with 1 workers on 3 vocabulary and 100 features, using sg=0 hs=0 sample=0.001 negative=5 window=3\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 1 : training on 10000 raw words (377 effective words) took 0.0s, 99850 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 2 : training on 10000 raw words (371 effective words) took 0.0s, 155020 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 3 : training on 10000 raw words (364 effective words) took 0.0s, 163702 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 4 : training on 10000 raw words (404 effective words) took 0.0s, 119438 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 5 : training on 10000 raw words (379 effective words) took 0.0s, 101970 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 6 : training on 10000 raw words (435 effective words) took 0.0s, 107086 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 7 : training on 10000 raw words (369 effective words) took 0.0s, 303441 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 8 : training on 10000 raw words (412 effective words) took 0.0s, 90806 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 9 : training on 10000 raw words (361 effective words) took 0.0s, 138650 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 10 : training on 10000 raw words (363 effective words) took 0.0s, 112861 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 11 : training on 10000 raw words (416 effective words) took 0.0s, 106314 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 12 : training on 10000 raw words (381 effective words) took 0.0s, 165695 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 13 : training on 10000 raw words (327 effective words) took 0.0s, 96743 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 14 : training on 10000 raw words (365 effective words) took 0.0s, 111034 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 15 : training on 10000 raw words (386 effective words) took 0.0s, 104733 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 16 : training on 10000 raw words (384 effective words) took 0.0s, 115513 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 17 : training on 10000 raw words (348 effective words) took 0.0s, 92727 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 18 : training on 10000 raw words (364 effective words) took 0.0s, 106523 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 19 : training on 10000 raw words (394 effective words) took 0.0s, 109919 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 20 : training on 10000 raw words (416 effective words) took 0.0s, 161603 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 21 : training on 10000 raw words (409 effective words) took 0.0s, 134520 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 22 : training on 10000 raw words (394 effective words) took 0.0s, 110410 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 23 : training on 10000 raw words (367 effective words) took 0.0s, 101092 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 24 : training on 10000 raw words (382 effective words) took 0.0s, 100804 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 25 : training on 10000 raw words (361 effective words) took 0.0s, 104718 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 26 : training on 10000 raw words (370 effective words) took 0.0s, 94100 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 27 : training on 10000 raw words (383 effective words) took 0.0s, 97018 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 28 : training on 10000 raw words (407 effective words) took 0.0s, 115156 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 29 : training on 10000 raw words (390 effective words) took 0.0s, 161187 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 30 : training on 10000 raw words (380 effective words) took 0.0s, 93917 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 31 : training on 10000 raw words (364 effective words) took 0.0s, 91653 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 32 : training on 10000 raw words (380 effective words) took 0.0s, 103983 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 33 : training on 10000 raw words (378 effective words) took 0.0s, 155740 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 34 : training on 10000 raw words (410 effective words) took 0.0s, 121956 effective words/s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 35 : training on 10000 raw words (366 effective words) took 0.0s, 148630 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 36 : training on 10000 raw words (354 effective words) took 0.0s, 131236 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 37 : training on 10000 raw words (381 effective words) took 0.0s, 160713 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 38 : training on 10000 raw words (378 effective words) took 0.0s, 107649 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 39 : training on 10000 raw words (355 effective words) took 0.0s, 101466 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 40 : training on 10000 raw words (394 effective words) took 0.0s, 110654 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 41 : training on 10000 raw words (388 effective words) took 0.0s, 230177 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 42 : training on 10000 raw words (396 effective words) took 0.0s, 194010 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 43 : training on 10000 raw words (407 effective words) took 0.0s, 147164 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 44 : training on 10000 raw words (379 effective words) took 0.0s, 210948 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 45 : training on 10000 raw words (383 effective words) took 0.0s, 90109 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 46 : training on 10000 raw words (388 effective words) took 0.0s, 112148 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 47 : training on 10000 raw words (386 effective words) took 0.0s, 107795 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 48 : training on 10000 raw words (396 effective words) took 0.0s, 95396 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 49 : training on 10000 raw words (349 effective words) took 0.0s, 197235 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 50 : training on 10000 raw words (370 effective words) took 0.0s, 99810 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 51 : training on 10000 raw words (377 effective words) took 0.0s, 86395 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 52 : training on 10000 raw words (403 effective words) took 0.0s, 114968 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 53 : training on 10000 raw words (361 effective words) took 0.0s, 106126 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 54 : training on 10000 raw words (386 effective words) took 0.0s, 300539 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 55 : training on 10000 raw words (364 effective words) took 0.0s, 103730 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 56 : training on 10000 raw words (363 effective words) took 0.0s, 98370 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 57 : training on 10000 raw words (361 effective words) took 0.0s, 97901 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 58 : training on 10000 raw words (352 effective words) took 0.0s, 94025 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 59 : training on 10000 raw words (403 effective words) took 0.0s, 191719 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 60 : training on 10000 raw words (355 effective words) took 0.0s, 102514 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 61 : training on 10000 raw words (402 effective words) took 0.0s, 115893 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 62 : training on 10000 raw words (402 effective words) took 0.0s, 106284 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 63 : training on 10000 raw words (393 effective words) took 0.0s, 107358 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 64 : training on 10000 raw words (366 effective words) took 0.0s, 85378 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 65 : training on 10000 raw words (372 effective words) took 0.0s, 92650 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 66 : training on 10000 raw words (405 effective words) took 0.0s, 106085 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 67 : training on 10000 raw words (362 effective words) took 0.0s, 95438 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 68 : training on 10000 raw words (380 effective words) took 0.0s, 102087 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 69 : training on 10000 raw words (416 effective words) took 0.0s, 142099 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 70 : training on 10000 raw words (371 effective words) took 0.0s, 116300 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 71 : training on 10000 raw words (355 effective words) took 0.0s, 174301 effective words/s\n",
      "job loop exiting, total 1 jobs\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 72 : training on 10000 raw words (376 effective words) took 0.0s, 99432 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 73 : training on 10000 raw words (395 effective words) took 0.0s, 114714 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 74 : training on 10000 raw words (349 effective words) took 0.0s, 150097 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 75 : training on 10000 raw words (381 effective words) took 0.0s, 99978 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 76 : training on 10000 raw words (366 effective words) took 0.0s, 171353 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 77 : training on 10000 raw words (379 effective words) took 0.0s, 102435 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 78 : training on 10000 raw words (372 effective words) took 0.0s, 104200 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 79 : training on 10000 raw words (347 effective words) took 0.0s, 111598 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 80 : training on 10000 raw words (366 effective words) took 0.0s, 103392 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 81 : training on 10000 raw words (359 effective words) took 0.0s, 83128 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 82 : training on 10000 raw words (362 effective words) took 0.0s, 96122 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 83 : training on 10000 raw words (387 effective words) took 0.0s, 107442 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 84 : training on 10000 raw words (369 effective words) took 0.0s, 114298 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 85 : training on 10000 raw words (367 effective words) took 0.0s, 108335 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 86 : training on 10000 raw words (400 effective words) took 0.0s, 128436 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 87 : training on 10000 raw words (428 effective words) took 0.0s, 128030 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 88 : training on 10000 raw words (378 effective words) took 0.0s, 105739 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 89 : training on 10000 raw words (394 effective words) took 0.0s, 184680 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 90 : training on 10000 raw words (398 effective words) took 0.0s, 97952 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 91 : training on 10000 raw words (369 effective words) took 0.0s, 202804 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 92 : training on 10000 raw words (369 effective words) took 0.0s, 101995 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 93 : training on 10000 raw words (385 effective words) took 0.0s, 202613 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 94 : training on 10000 raw words (343 effective words) took 0.0s, 143144 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 95 : training on 10000 raw words (387 effective words) took 0.0s, 99004 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 96 : training on 10000 raw words (354 effective words) took 0.0s, 124754 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 97 : training on 10000 raw words (368 effective words) took 0.0s, 95081 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 98 : training on 10000 raw words (398 effective words) took 0.0s, 117203 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 99 : training on 10000 raw words (393 effective words) took 0.0s, 106117 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 100 : training on 10000 raw words (378 effective words) took 0.0s, 91238 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 101 : training on 10000 raw words (362 effective words) took 0.0s, 97773 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 102 : training on 10000 raw words (387 effective words) took 0.0s, 84256 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 103 : training on 10000 raw words (383 effective words) took 0.0s, 111330 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 104 : training on 10000 raw words (403 effective words) took 0.0s, 179807 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 105 : training on 10000 raw words (368 effective words) took 0.0s, 188198 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 106 : training on 10000 raw words (380 effective words) took 0.0s, 105601 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 107 : training on 10000 raw words (388 effective words) took 0.0s, 99132 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 108 : training on 10000 raw words (373 effective words) took 0.0s, 104723 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 109 : training on 10000 raw words (354 effective words) took 0.0s, 185781 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 110 : training on 10000 raw words (403 effective words) took 0.0s, 114152 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 111 : training on 10000 raw words (384 effective words) took 0.0s, 99845 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 112 : training on 10000 raw words (365 effective words) took 0.0s, 140097 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 113 : training on 10000 raw words (400 effective words) took 0.0s, 104172 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 114 : training on 10000 raw words (395 effective words) took 0.0s, 149922 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 115 : training on 10000 raw words (416 effective words) took 0.0s, 119341 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 116 : training on 10000 raw words (371 effective words) took 0.0s, 96397 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 117 : training on 10000 raw words (365 effective words) took 0.0s, 171505 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 118 : training on 10000 raw words (367 effective words) took 0.0s, 95077 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 119 : training on 10000 raw words (335 effective words) took 0.0s, 85384 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 120 : training on 10000 raw words (376 effective words) took 0.0s, 98807 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 121 : training on 10000 raw words (385 effective words) took 0.0s, 172839 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 122 : training on 10000 raw words (383 effective words) took 0.0s, 105965 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 123 : training on 10000 raw words (409 effective words) took 0.0s, 118504 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 124 : training on 10000 raw words (413 effective words) took 0.0s, 110774 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 125 : training on 10000 raw words (427 effective words) took 0.0s, 122503 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 126 : training on 10000 raw words (367 effective words) took 0.0s, 97777 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 127 : training on 10000 raw words (364 effective words) took 0.0s, 207099 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 128 : training on 10000 raw words (401 effective words) took 0.0s, 115870 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 129 : training on 10000 raw words (363 effective words) took 0.0s, 179376 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 130 : training on 10000 raw words (373 effective words) took 0.0s, 196673 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 131 : training on 10000 raw words (360 effective words) took 0.0s, 103787 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 132 : training on 10000 raw words (393 effective words) took 0.0s, 97714 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 133 : training on 10000 raw words (329 effective words) took 0.0s, 114381 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 134 : training on 10000 raw words (409 effective words) took 0.0s, 133468 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 135 : training on 10000 raw words (382 effective words) took 0.0s, 122188 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 136 : training on 10000 raw words (381 effective words) took 0.0s, 99675 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 137 : training on 10000 raw words (388 effective words) took 0.0s, 113767 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 138 : training on 10000 raw words (402 effective words) took 0.0s, 91894 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 139 : training on 10000 raw words (391 effective words) took 0.0s, 156348 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 140 : training on 10000 raw words (349 effective words) took 0.0s, 87727 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 141 : training on 10000 raw words (412 effective words) took 0.0s, 108907 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 142 : training on 10000 raw words (365 effective words) took 0.0s, 184983 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 143 : training on 10000 raw words (392 effective words) took 0.0s, 174381 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 144 : training on 10000 raw words (361 effective words) took 0.0s, 67674 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 145 : training on 10000 raw words (393 effective words) took 0.0s, 88140 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 146 : training on 10000 raw words (372 effective words) took 0.0s, 127349 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 147 : training on 10000 raw words (401 effective words) took 0.0s, 107433 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 148 : training on 10000 raw words (364 effective words) took 0.0s, 133655 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 149 : training on 10000 raw words (361 effective words) took 0.0s, 154504 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 150 : training on 10000 raw words (400 effective words) took 0.0s, 223699 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 151 : training on 10000 raw words (365 effective words) took 0.0s, 98020 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 152 : training on 10000 raw words (400 effective words) took 0.0s, 115554 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 153 : training on 10000 raw words (398 effective words) took 0.0s, 212277 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 154 : training on 10000 raw words (371 effective words) took 0.0s, 106608 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 155 : training on 10000 raw words (379 effective words) took 0.0s, 101254 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 156 : training on 10000 raw words (382 effective words) took 0.0s, 88399 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 157 : training on 10000 raw words (354 effective words) took 0.0s, 85292 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 158 : training on 10000 raw words (386 effective words) took 0.0s, 199204 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 159 : training on 10000 raw words (351 effective words) took 0.0s, 153227 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 160 : training on 10000 raw words (368 effective words) took 0.0s, 115882 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 161 : training on 10000 raw words (379 effective words) took 0.0s, 88783 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 162 : training on 10000 raw words (338 effective words) took 0.0s, 82925 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 163 : training on 10000 raw words (384 effective words) took 0.0s, 164754 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 164 : training on 10000 raw words (377 effective words) took 0.0s, 103189 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 165 : training on 10000 raw words (387 effective words) took 0.0s, 237214 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 166 : training on 10000 raw words (363 effective words) took 0.0s, 159974 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 167 : training on 10000 raw words (367 effective words) took 0.0s, 102005 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 168 : training on 10000 raw words (380 effective words) took 0.0s, 89189 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 169 : training on 10000 raw words (353 effective words) took 0.0s, 90397 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 170 : training on 10000 raw words (399 effective words) took 0.0s, 100529 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 171 : training on 10000 raw words (379 effective words) took 0.0s, 105147 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 172 : training on 10000 raw words (386 effective words) took 0.0s, 203030 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 173 : training on 10000 raw words (383 effective words) took 0.0s, 114205 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 174 : training on 10000 raw words (406 effective words) took 0.0s, 154604 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 175 : training on 10000 raw words (374 effective words) took 0.0s, 101945 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 176 : training on 10000 raw words (387 effective words) took 0.0s, 159581 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 177 : training on 10000 raw words (360 effective words) took 0.0s, 102827 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 178 : training on 10000 raw words (356 effective words) took 0.0s, 100094 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 179 : training on 10000 raw words (368 effective words) took 0.0s, 201650 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 180 : training on 10000 raw words (395 effective words) took 0.0s, 105490 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 181 : training on 10000 raw words (408 effective words) took 0.0s, 117834 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 182 : training on 10000 raw words (380 effective words) took 0.0s, 70982 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 183 : training on 10000 raw words (399 effective words) took 0.0s, 112263 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 184 : training on 10000 raw words (378 effective words) took 0.0s, 82793 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 185 : training on 10000 raw words (383 effective words) took 0.0s, 85530 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 186 : training on 10000 raw words (416 effective words) took 0.0s, 107830 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 187 : training on 10000 raw words (373 effective words) took 0.0s, 94421 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 188 : training on 10000 raw words (391 effective words) took 0.0s, 98649 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 189 : training on 10000 raw words (384 effective words) took 0.0s, 101591 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 190 : training on 10000 raw words (350 effective words) took 0.0s, 182528 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 191 : training on 10000 raw words (384 effective words) took 0.0s, 100534 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 192 : training on 10000 raw words (328 effective words) took 0.0s, 88618 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 193 : training on 10000 raw words (368 effective words) took 0.0s, 97062 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 194 : training on 10000 raw words (390 effective words) took 0.0s, 86584 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 195 : training on 10000 raw words (408 effective words) took 0.0s, 114630 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 196 : training on 10000 raw words (382 effective words) took 0.0s, 210476 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 197 : training on 10000 raw words (377 effective words) took 0.0s, 154949 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 198 : training on 10000 raw words (399 effective words) took 0.0s, 91744 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 199 : training on 10000 raw words (395 effective words) took 0.0s, 169712 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 200 : training on 10000 raw words (362 effective words) took 0.0s, 91112 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 201 : training on 10000 raw words (391 effective words) took 0.0s, 105941 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 202 : training on 10000 raw words (389 effective words) took 0.0s, 97977 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 203 : training on 10000 raw words (382 effective words) took 0.0s, 91652 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 204 : training on 10000 raw words (342 effective words) took 0.0s, 117439 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 205 : training on 10000 raw words (382 effective words) took 0.0s, 80480 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 206 : training on 10000 raw words (373 effective words) took 0.0s, 90619 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 207 : training on 10000 raw words (391 effective words) took 0.0s, 253194 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 208 : training on 10000 raw words (373 effective words) took 0.0s, 89060 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 209 : training on 10000 raw words (381 effective words) took 0.0s, 133246 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 210 : training on 10000 raw words (385 effective words) took 0.0s, 90662 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 211 : training on 10000 raw words (361 effective words) took 0.0s, 89929 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 212 : training on 10000 raw words (328 effective words) took 0.0s, 85656 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 213 : training on 10000 raw words (377 effective words) took 0.0s, 105538 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 214 : training on 10000 raw words (402 effective words) took 0.0s, 99006 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 215 : training on 10000 raw words (371 effective words) took 0.0s, 115118 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 216 : training on 10000 raw words (370 effective words) took 0.0s, 96821 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 217 : training on 10000 raw words (408 effective words) took 0.0s, 85142 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 218 : training on 10000 raw words (366 effective words) took 0.0s, 92687 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 219 : training on 10000 raw words (382 effective words) took 0.0s, 69574 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 220 : training on 10000 raw words (356 effective words) took 0.0s, 65635 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 221 : training on 10000 raw words (394 effective words) took 0.0s, 165903 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 222 : training on 10000 raw words (386 effective words) took 0.0s, 86160 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 223 : training on 10000 raw words (407 effective words) took 0.0s, 160882 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 224 : training on 10000 raw words (355 effective words) took 0.0s, 93784 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 225 : training on 10000 raw words (360 effective words) took 0.0s, 92717 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 226 : training on 10000 raw words (363 effective words) took 0.0s, 195481 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 227 : training on 10000 raw words (402 effective words) took 0.0s, 145815 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 228 : training on 10000 raw words (401 effective words) took 0.0s, 165937 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 229 : training on 10000 raw words (394 effective words) took 0.0s, 98566 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 230 : training on 10000 raw words (377 effective words) took 0.0s, 100425 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 231 : training on 10000 raw words (367 effective words) took 0.0s, 157787 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 232 : training on 10000 raw words (397 effective words) took 0.0s, 86160 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 233 : training on 10000 raw words (396 effective words) took 0.0s, 118071 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 234 : training on 10000 raw words (407 effective words) took 0.0s, 191965 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 235 : training on 10000 raw words (382 effective words) took 0.0s, 230067 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 236 : training on 10000 raw words (391 effective words) took 0.0s, 322514 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 237 : training on 10000 raw words (367 effective words) took 0.0s, 105886 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 238 : training on 10000 raw words (377 effective words) took 0.0s, 177207 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 239 : training on 10000 raw words (354 effective words) took 0.0s, 89181 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 240 : training on 10000 raw words (389 effective words) took 0.0s, 389694 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 241 : training on 10000 raw words (355 effective words) took 0.0s, 97797 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 242 : training on 10000 raw words (369 effective words) took 0.0s, 87313 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 243 : training on 10000 raw words (352 effective words) took 0.0s, 74161 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 244 : training on 10000 raw words (364 effective words) took 0.0s, 83768 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 245 : training on 10000 raw words (409 effective words) took 0.0s, 105741 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 246 : training on 10000 raw words (395 effective words) took 0.0s, 210306 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 247 : training on 10000 raw words (365 effective words) took 0.0s, 140744 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 248 : training on 10000 raw words (372 effective words) took 0.0s, 118919 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 249 : training on 10000 raw words (398 effective words) took 0.0s, 110241 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 250 : training on 10000 raw words (396 effective words) took 0.0s, 77836 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 251 : training on 10000 raw words (405 effective words) took 0.0s, 145288 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 252 : training on 10000 raw words (382 effective words) took 0.0s, 82002 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 253 : training on 10000 raw words (381 effective words) took 0.0s, 128975 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 254 : training on 10000 raw words (369 effective words) took 0.0s, 140280 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 255 : training on 10000 raw words (362 effective words) took 0.0s, 81233 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 256 : training on 10000 raw words (397 effective words) took 0.0s, 94934 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 257 : training on 10000 raw words (391 effective words) took 0.0s, 164312 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 258 : training on 10000 raw words (378 effective words) took 0.0s, 90902 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 259 : training on 10000 raw words (371 effective words) took 0.0s, 102415 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 260 : training on 10000 raw words (370 effective words) took 0.0s, 81475 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 261 : training on 10000 raw words (396 effective words) took 0.0s, 154349 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 262 : training on 10000 raw words (397 effective words) took 0.0s, 108984 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 263 : training on 10000 raw words (364 effective words) took 0.0s, 107165 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 264 : training on 10000 raw words (413 effective words) took 0.0s, 117134 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 265 : training on 10000 raw words (381 effective words) took 0.0s, 99891 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 266 : training on 10000 raw words (368 effective words) took 0.0s, 139034 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 267 : training on 10000 raw words (389 effective words) took 0.0s, 196850 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 268 : training on 10000 raw words (358 effective words) took 0.0s, 94779 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 269 : training on 10000 raw words (375 effective words) took 0.0s, 110414 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 270 : training on 10000 raw words (384 effective words) took 0.0s, 98663 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 271 : training on 10000 raw words (377 effective words) took 0.0s, 185225 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 272 : training on 10000 raw words (362 effective words) took 0.0s, 84435 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 273 : training on 10000 raw words (337 effective words) took 0.0s, 99547 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 274 : training on 10000 raw words (373 effective words) took 0.0s, 102785 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 275 : training on 10000 raw words (374 effective words) took 0.0s, 95597 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 276 : training on 10000 raw words (365 effective words) took 0.0s, 109841 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 277 : training on 10000 raw words (418 effective words) took 0.0s, 115355 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 278 : training on 10000 raw words (360 effective words) took 0.0s, 92944 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 279 : training on 10000 raw words (351 effective words) took 0.0s, 174109 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 280 : training on 10000 raw words (377 effective words) took 0.0s, 189607 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 281 : training on 10000 raw words (395 effective words) took 0.0s, 194068 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 282 : training on 10000 raw words (391 effective words) took 0.0s, 115004 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 283 : training on 10000 raw words (374 effective words) took 0.0s, 99336 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 284 : training on 10000 raw words (404 effective words) took 0.0s, 99257 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 285 : training on 10000 raw words (390 effective words) took 0.0s, 93285 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 286 : training on 10000 raw words (416 effective words) took 0.0s, 91030 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 287 : training on 10000 raw words (416 effective words) took 0.0s, 109685 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 288 : training on 10000 raw words (367 effective words) took 0.0s, 96664 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 289 : training on 10000 raw words (401 effective words) took 0.0s, 82003 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 290 : training on 10000 raw words (409 effective words) took 0.0s, 75514 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 291 : training on 10000 raw words (372 effective words) took 0.0s, 74190 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 292 : training on 10000 raw words (356 effective words) took 0.0s, 83791 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 293 : training on 10000 raw words (377 effective words) took 0.0s, 94663 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 294 : training on 10000 raw words (397 effective words) took 0.0s, 86567 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 295 : training on 10000 raw words (374 effective words) took 0.0s, 160014 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 296 : training on 10000 raw words (380 effective words) took 0.0s, 89878 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 297 : training on 10000 raw words (382 effective words) took 0.0s, 136374 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 298 : training on 10000 raw words (383 effective words) took 0.0s, 147075 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 299 : training on 10000 raw words (379 effective words) took 0.0s, 194546 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 300 : training on 10000 raw words (355 effective words) took 0.0s, 165892 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 301 : training on 10000 raw words (378 effective words) took 0.0s, 96359 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 302 : training on 10000 raw words (377 effective words) took 0.0s, 81436 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 303 : training on 10000 raw words (400 effective words) took 0.0s, 108082 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 304 : training on 10000 raw words (366 effective words) took 0.0s, 91429 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 305 : training on 10000 raw words (394 effective words) took 0.0s, 96137 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 306 : training on 10000 raw words (408 effective words) took 0.0s, 159116 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 307 : training on 10000 raw words (402 effective words) took 0.0s, 90259 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 308 : training on 10000 raw words (382 effective words) took 0.0s, 156134 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 309 : training on 10000 raw words (385 effective words) took 0.0s, 99205 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 310 : training on 10000 raw words (379 effective words) took 0.0s, 93345 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 311 : training on 10000 raw words (415 effective words) took 0.0s, 159085 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 312 : training on 10000 raw words (374 effective words) took 0.0s, 78740 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 313 : training on 10000 raw words (369 effective words) took 0.0s, 132268 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 314 : training on 10000 raw words (392 effective words) took 0.0s, 75818 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 315 : training on 10000 raw words (392 effective words) took 0.0s, 149334 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 316 : training on 10000 raw words (346 effective words) took 0.0s, 87489 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 317 : training on 10000 raw words (392 effective words) took 0.0s, 190396 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 318 : training on 10000 raw words (380 effective words) took 0.0s, 140058 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 319 : training on 10000 raw words (380 effective words) took 0.0s, 129536 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 320 : training on 10000 raw words (376 effective words) took 0.0s, 122031 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 321 : training on 10000 raw words (390 effective words) took 0.0s, 644945 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 322 : training on 10000 raw words (388 effective words) took 0.0s, 136772 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 323 : training on 10000 raw words (383 effective words) took 0.0s, 80334 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 324 : training on 10000 raw words (395 effective words) took 0.0s, 74622 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 325 : training on 10000 raw words (380 effective words) took 0.0s, 142715 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 326 : training on 10000 raw words (355 effective words) took 0.0s, 75689 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 327 : training on 10000 raw words (403 effective words) took 0.0s, 146927 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 328 : training on 10000 raw words (358 effective words) took 0.0s, 82846 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 329 : training on 10000 raw words (401 effective words) took 0.0s, 98134 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 330 : training on 10000 raw words (373 effective words) took 0.0s, 225463 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 331 : training on 10000 raw words (375 effective words) took 0.0s, 182474 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 332 : training on 10000 raw words (393 effective words) took 0.0s, 172032 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 333 : training on 10000 raw words (370 effective words) took 0.0s, 75076 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 334 : training on 10000 raw words (389 effective words) took 0.0s, 144551 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 335 : training on 10000 raw words (412 effective words) took 0.0s, 113246 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 336 : training on 10000 raw words (358 effective words) took 0.0s, 100181 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 337 : training on 10000 raw words (368 effective words) took 0.0s, 171911 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 338 : training on 10000 raw words (357 effective words) took 0.0s, 95918 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 339 : training on 10000 raw words (377 effective words) took 0.0s, 97765 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 340 : training on 10000 raw words (375 effective words) took 0.0s, 94823 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 341 : training on 10000 raw words (379 effective words) took 0.0s, 181901 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 342 : training on 10000 raw words (378 effective words) took 0.0s, 96854 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 343 : training on 10000 raw words (364 effective words) took 0.0s, 102264 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 344 : training on 10000 raw words (418 effective words) took 0.0s, 118761 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 345 : training on 10000 raw words (392 effective words) took 0.0s, 109476 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 346 : training on 10000 raw words (365 effective words) took 0.0s, 83784 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 347 : training on 10000 raw words (375 effective words) took 0.0s, 109166 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 348 : training on 10000 raw words (352 effective words) took 0.0s, 93903 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 349 : training on 10000 raw words (365 effective words) took 0.0s, 184883 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 350 : training on 10000 raw words (416 effective words) took 0.0s, 116921 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 351 : training on 10000 raw words (362 effective words) took 0.0s, 114163 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 352 : training on 10000 raw words (389 effective words) took 0.0s, 95514 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 353 : training on 10000 raw words (376 effective words) took 0.0s, 120450 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 354 : training on 10000 raw words (403 effective words) took 0.0s, 88267 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 355 : training on 10000 raw words (342 effective words) took 0.0s, 135045 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 356 : training on 10000 raw words (378 effective words) took 0.0s, 104353 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 357 : training on 10000 raw words (367 effective words) took 0.0s, 148911 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 358 : training on 10000 raw words (370 effective words) took 0.0s, 93714 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 359 : training on 10000 raw words (350 effective words) took 0.0s, 64298 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 360 : training on 10000 raw words (395 effective words) took 0.0s, 75323 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 361 : training on 10000 raw words (363 effective words) took 0.0s, 74069 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 362 : training on 10000 raw words (378 effective words) took 0.0s, 88129 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 363 : training on 10000 raw words (374 effective words) took 0.0s, 80713 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 364 : training on 10000 raw words (405 effective words) took 0.0s, 83374 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 365 : training on 10000 raw words (386 effective words) took 0.0s, 134669 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 366 : training on 10000 raw words (399 effective words) took 0.0s, 104803 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 367 : training on 10000 raw words (419 effective words) took 0.0s, 106065 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 368 : training on 10000 raw words (384 effective words) took 0.0s, 154792 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 369 : training on 10000 raw words (382 effective words) took 0.0s, 141566 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 370 : training on 10000 raw words (348 effective words) took 0.0s, 89165 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 371 : training on 10000 raw words (353 effective words) took 0.0s, 84467 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 372 : training on 10000 raw words (393 effective words) took 0.0s, 152867 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 373 : training on 10000 raw words (379 effective words) took 0.0s, 123931 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 374 : training on 10000 raw words (370 effective words) took 0.0s, 81666 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 375 : training on 10000 raw words (377 effective words) took 0.0s, 75592 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 376 : training on 10000 raw words (382 effective words) took 0.0s, 81017 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 377 : training on 10000 raw words (351 effective words) took 0.0s, 86898 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 378 : training on 10000 raw words (390 effective words) took 0.0s, 88909 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 379 : training on 10000 raw words (371 effective words) took 0.0s, 81781 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 380 : training on 10000 raw words (362 effective words) took 0.0s, 138151 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 381 : training on 10000 raw words (367 effective words) took 0.0s, 96748 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 382 : training on 10000 raw words (379 effective words) took 0.0s, 93065 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 383 : training on 10000 raw words (425 effective words) took 0.0s, 109792 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 384 : training on 10000 raw words (381 effective words) took 0.0s, 102464 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 385 : training on 10000 raw words (373 effective words) took 0.0s, 103952 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 386 : training on 10000 raw words (400 effective words) took 0.0s, 117503 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 387 : training on 10000 raw words (329 effective words) took 0.0s, 149103 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 388 : training on 10000 raw words (389 effective words) took 0.0s, 94754 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 389 : training on 10000 raw words (358 effective words) took 0.0s, 80703 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 390 : training on 10000 raw words (367 effective words) took 0.0s, 114839 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 391 : training on 10000 raw words (344 effective words) took 0.0s, 72858 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 392 : training on 10000 raw words (373 effective words) took 0.0s, 136043 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 393 : training on 10000 raw words (380 effective words) took 0.0s, 105471 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 394 : training on 10000 raw words (395 effective words) took 0.0s, 92302 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 395 : training on 10000 raw words (371 effective words) took 0.0s, 88947 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 396 : training on 10000 raw words (398 effective words) took 0.0s, 106164 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 397 : training on 10000 raw words (368 effective words) took 0.0s, 190739 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 398 : training on 10000 raw words (365 effective words) took 0.0s, 86958 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 399 : training on 10000 raw words (388 effective words) took 0.0s, 103688 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 400 : training on 10000 raw words (371 effective words) took 0.0s, 95855 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 401 : training on 10000 raw words (386 effective words) took 0.0s, 90440 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 402 : training on 10000 raw words (388 effective words) took 0.0s, 144731 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 403 : training on 10000 raw words (373 effective words) took 0.0s, 101205 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 404 : training on 10000 raw words (370 effective words) took 0.0s, 98556 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 405 : training on 10000 raw words (349 effective words) took 0.0s, 91095 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 406 : training on 10000 raw words (414 effective words) took 0.0s, 107607 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 407 : training on 10000 raw words (372 effective words) took 0.0s, 94113 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 408 : training on 10000 raw words (383 effective words) took 0.0s, 188143 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 409 : training on 10000 raw words (379 effective words) took 0.0s, 90571 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 410 : training on 10000 raw words (375 effective words) took 0.0s, 106460 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 411 : training on 10000 raw words (385 effective words) took 0.0s, 95913 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 412 : training on 10000 raw words (398 effective words) took 0.0s, 142962 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 413 : training on 10000 raw words (363 effective words) took 0.0s, 181028 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 414 : training on 10000 raw words (398 effective words) took 0.0s, 100240 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 415 : training on 10000 raw words (408 effective words) took 0.0s, 175778 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 416 : training on 10000 raw words (413 effective words) took 0.0s, 105578 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 417 : training on 10000 raw words (353 effective words) took 0.0s, 95293 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 418 : training on 10000 raw words (346 effective words) took 0.0s, 134456 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 419 : training on 10000 raw words (385 effective words) took 0.0s, 88006 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 420 : training on 10000 raw words (370 effective words) took 0.0s, 97032 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 421 : training on 10000 raw words (381 effective words) took 0.0s, 93393 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 422 : training on 10000 raw words (383 effective words) took 0.0s, 100065 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 423 : training on 10000 raw words (412 effective words) took 0.0s, 108173 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 424 : training on 10000 raw words (338 effective words) took 0.0s, 81062 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 425 : training on 10000 raw words (382 effective words) took 0.0s, 141605 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 426 : training on 10000 raw words (357 effective words) took 0.0s, 59873 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 427 : training on 10000 raw words (399 effective words) took 0.0s, 98237 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 428 : training on 10000 raw words (400 effective words) took 0.0s, 99082 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 429 : training on 10000 raw words (386 effective words) took 0.0s, 93311 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 430 : training on 10000 raw words (352 effective words) took 0.0s, 97630 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 431 : training on 10000 raw words (401 effective words) took 0.0s, 90576 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 432 : training on 10000 raw words (378 effective words) took 0.0s, 91247 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 433 : training on 10000 raw words (355 effective words) took 0.0s, 183490 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 434 : training on 10000 raw words (331 effective words) took 0.0s, 79931 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 435 : training on 10000 raw words (385 effective words) took 0.0s, 151161 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 436 : training on 10000 raw words (383 effective words) took 0.0s, 91674 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 437 : training on 10000 raw words (395 effective words) took 0.0s, 175709 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 438 : training on 10000 raw words (392 effective words) took 0.0s, 110579 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 439 : training on 10000 raw words (388 effective words) took 0.0s, 197462 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 440 : training on 10000 raw words (376 effective words) took 0.0s, 104695 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 441 : training on 10000 raw words (374 effective words) took 0.0s, 156136 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 442 : training on 10000 raw words (388 effective words) took 0.0s, 97227 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 443 : training on 10000 raw words (395 effective words) took 0.0s, 109325 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 444 : training on 10000 raw words (344 effective words) took 0.0s, 82202 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 445 : training on 10000 raw words (378 effective words) took 0.0s, 97215 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 446 : training on 10000 raw words (396 effective words) took 0.0s, 104025 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 447 : training on 10000 raw words (376 effective words) took 0.0s, 90886 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 448 : training on 10000 raw words (394 effective words) took 0.0s, 95219 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 449 : training on 10000 raw words (412 effective words) took 0.0s, 109054 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 450 : training on 10000 raw words (381 effective words) took 0.0s, 206010 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 451 : training on 10000 raw words (377 effective words) took 0.0s, 108682 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 452 : training on 10000 raw words (409 effective words) took 0.0s, 104630 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 453 : training on 10000 raw words (411 effective words) took 0.0s, 190833 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 454 : training on 10000 raw words (395 effective words) took 0.0s, 100178 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 455 : training on 10000 raw words (372 effective words) took 0.0s, 97780 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 456 : training on 10000 raw words (388 effective words) took 0.0s, 123204 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 457 : training on 10000 raw words (417 effective words) took 0.0s, 106408 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 458 : training on 10000 raw words (357 effective words) took 0.0s, 88037 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 459 : training on 10000 raw words (416 effective words) took 0.0s, 200908 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 460 : training on 10000 raw words (369 effective words) took 0.0s, 149332 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 461 : training on 10000 raw words (385 effective words) took 0.0s, 69287 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 462 : training on 10000 raw words (379 effective words) took 0.0s, 79276 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 463 : training on 10000 raw words (374 effective words) took 0.0s, 112162 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 464 : training on 10000 raw words (373 effective words) took 0.0s, 83571 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 465 : training on 10000 raw words (436 effective words) took 0.0s, 155436 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 466 : training on 10000 raw words (381 effective words) took 0.0s, 81887 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 467 : training on 10000 raw words (406 effective words) took 0.0s, 95126 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 468 : training on 10000 raw words (380 effective words) took 0.0s, 102341 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 469 : training on 10000 raw words (401 effective words) took 0.0s, 95141 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 470 : training on 10000 raw words (372 effective words) took 0.0s, 219586 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 471 : training on 10000 raw words (344 effective words) took 0.0s, 147203 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 472 : training on 10000 raw words (393 effective words) took 0.0s, 91378 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 473 : training on 10000 raw words (417 effective words) took 0.0s, 92770 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 474 : training on 10000 raw words (368 effective words) took 0.0s, 88122 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 475 : training on 10000 raw words (362 effective words) took 0.0s, 126694 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 476 : training on 10000 raw words (404 effective words) took 0.0s, 95299 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 477 : training on 10000 raw words (381 effective words) took 0.0s, 105479 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 478 : training on 10000 raw words (386 effective words) took 0.0s, 153402 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "EPOCH - 479 : training on 10000 raw words (354 effective words) took 0.0s, 135969 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 480 : training on 10000 raw words (413 effective words) took 0.0s, 161951 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 481 : training on 10000 raw words (371 effective words) took 0.0s, 81304 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 482 : training on 10000 raw words (370 effective words) took 0.0s, 86538 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 483 : training on 10000 raw words (387 effective words) took 0.0s, 144459 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 484 : training on 10000 raw words (412 effective words) took 0.0s, 109315 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 485 : training on 10000 raw words (387 effective words) took 0.0s, 93507 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 486 : training on 10000 raw words (377 effective words) took 0.0s, 71749 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 487 : training on 10000 raw words (360 effective words) took 0.0s, 79965 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 488 : training on 10000 raw words (404 effective words) took 0.0s, 164667 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 489 : training on 10000 raw words (354 effective words) took 0.0s, 83337 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 490 : training on 10000 raw words (407 effective words) took 0.0s, 89334 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 491 : training on 10000 raw words (393 effective words) took 0.0s, 64394 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 492 : training on 10000 raw words (375 effective words) took 0.0s, 139651 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 493 : training on 10000 raw words (380 effective words) took 0.0s, 99127 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 494 : training on 10000 raw words (394 effective words) took 0.0s, 73900 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 495 : training on 10000 raw words (381 effective words) took 0.0s, 100689 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 496 : training on 10000 raw words (361 effective words) took 0.0s, 116807 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 497 : training on 10000 raw words (372 effective words) took 0.0s, 158252 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 498 : training on 10000 raw words (380 effective words) took 0.0s, 91257 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 499 : training on 10000 raw words (369 effective words) took 0.0s, 64417 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 500 : training on 10000 raw words (381 effective words) took 0.0s, 78595 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 501 : training on 10000 raw words (385 effective words) took 0.0s, 149907 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 502 : training on 10000 raw words (384 effective words) took 0.0s, 152499 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 503 : training on 10000 raw words (349 effective words) took 0.0s, 119887 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 504 : training on 10000 raw words (372 effective words) took 0.0s, 85429 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 505 : training on 10000 raw words (372 effective words) took 0.0s, 86840 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 506 : training on 10000 raw words (382 effective words) took 0.0s, 74956 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 507 : training on 10000 raw words (392 effective words) took 0.0s, 83272 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 508 : training on 10000 raw words (396 effective words) took 0.0s, 93866 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 509 : training on 10000 raw words (371 effective words) took 0.0s, 130252 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 510 : training on 10000 raw words (378 effective words) took 0.0s, 90304 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 511 : training on 10000 raw words (390 effective words) took 0.0s, 80308 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 512 : training on 10000 raw words (353 effective words) took 0.0s, 75401 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 513 : training on 10000 raw words (382 effective words) took 0.0s, 167217 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 514 : training on 10000 raw words (368 effective words) took 0.0s, 81239 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 515 : training on 10000 raw words (394 effective words) took 0.0s, 98930 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 516 : training on 10000 raw words (364 effective words) took 0.0s, 149869 effective words/s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 517 : training on 10000 raw words (397 effective words) took 0.0s, 76808 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 518 : training on 10000 raw words (397 effective words) took 0.0s, 170115 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 519 : training on 10000 raw words (381 effective words) took 0.0s, 103032 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 520 : training on 10000 raw words (351 effective words) took 0.0s, 87529 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 521 : training on 10000 raw words (369 effective words) took 0.0s, 85255 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 522 : training on 10000 raw words (398 effective words) took 0.0s, 133288 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 523 : training on 10000 raw words (363 effective words) took 0.0s, 92354 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 524 : training on 10000 raw words (392 effective words) took 0.0s, 197834 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 525 : training on 10000 raw words (360 effective words) took 0.0s, 121205 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 526 : training on 10000 raw words (389 effective words) took 0.0s, 72322 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 527 : training on 10000 raw words (353 effective words) took 0.0s, 88180 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 528 : training on 10000 raw words (353 effective words) took 0.0s, 114392 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 529 : training on 10000 raw words (394 effective words) took 0.0s, 86274 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 530 : training on 10000 raw words (386 effective words) took 0.0s, 93028 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 531 : training on 10000 raw words (391 effective words) took 0.0s, 94596 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 532 : training on 10000 raw words (382 effective words) took 0.0s, 184143 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 533 : training on 10000 raw words (391 effective words) took 0.0s, 164673 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 534 : training on 10000 raw words (370 effective words) took 0.0s, 114589 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 535 : training on 10000 raw words (394 effective words) took 0.0s, 118335 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 536 : training on 10000 raw words (379 effective words) took 0.0s, 150715 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 537 : training on 10000 raw words (374 effective words) took 0.0s, 81600 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 538 : training on 10000 raw words (397 effective words) took 0.0s, 85851 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 539 : training on 10000 raw words (388 effective words) took 0.0s, 86631 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 540 : training on 10000 raw words (350 effective words) took 0.0s, 77183 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 541 : training on 10000 raw words (366 effective words) took 0.0s, 74866 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 542 : training on 10000 raw words (372 effective words) took 0.0s, 160766 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 543 : training on 10000 raw words (379 effective words) took 0.0s, 74744 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 544 : training on 10000 raw words (408 effective words) took 0.0s, 100661 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 545 : training on 10000 raw words (376 effective words) took 0.0s, 125867 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 546 : training on 10000 raw words (385 effective words) took 0.0s, 85795 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 547 : training on 10000 raw words (363 effective words) took 0.0s, 124625 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 548 : training on 10000 raw words (394 effective words) took 0.0s, 132341 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 549 : training on 10000 raw words (350 effective words) took 0.0s, 82695 effective words/s\n",
      "job loop exiting, total 1 jobs\n",
      "worker exiting, processed 1 jobs\n",
      "worker thread finished; awaiting finish of 0 more threads\n",
      "EPOCH - 550 : training on 10000 raw words (400 effective words) took 0.0s, 125088 effective words/s\n",
      "training on a 5500000 raw words (209005 effective words) took 3.2s, 65504 effective words/s\n"
     ]
    }
   ],
   "source": [
    "w2vmodel = create(data, 100,3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "transformed_data = one_vector(data, w2vmodel)\n",
    "transformed_data = transformed_data[:,1:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Train SOM\n",
    "\n",
    "Here we train the Self Organizing Map on our vectorized logs and output a few vizualiztions of the trained model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "# map_size = 16\n",
    "# model = train(transformed_data, map_size, 0, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/Martu/anaconda3/lib/python3.7/site-packages/sklearn/cluster/k_means_.py:969: ConvergenceWarning: Number of distinct clusters (3) found smaller than n_clusters (4). Possibly due to duplicate points in X.\n",
      "  return_n_iter=True)\n",
      "/Users/Martu/anaconda3/lib/python3.7/site-packages/sklearn/cluster/k_means_.py:969: ConvergenceWarning: Number of distinct clusters (3) found smaller than n_clusters (5). Possibly due to duplicate points in X.\n",
      "  return_n_iter=True)\n",
      "/Users/Martu/anaconda3/lib/python3.7/site-packages/sklearn/cluster/k_means_.py:969: ConvergenceWarning: Number of distinct clusters (3) found smaller than n_clusters (6). Possibly due to duplicate points in X.\n",
      "  return_n_iter=True)\n",
      "/Users/Martu/anaconda3/lib/python3.7/site-packages/sklearn/cluster/k_means_.py:969: ConvergenceWarning: Number of distinct clusters (3) found smaller than n_clusters (7). Possibly due to duplicate points in X.\n",
      "  return_n_iter=True)\n",
      "/Users/Martu/anaconda3/lib/python3.7/site-packages/sklearn/cluster/k_means_.py:969: ConvergenceWarning: Number of distinct clusters (3) found smaller than n_clusters (8). Possibly due to duplicate points in X.\n",
      "  return_n_iter=True)\n",
      "/Users/Martu/anaconda3/lib/python3.7/site-packages/sklearn/cluster/k_means_.py:969: ConvergenceWarning: Number of distinct clusters (3) found smaller than n_clusters (9). Possibly due to duplicate points in X.\n",
      "  return_n_iter=True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-24726.95637574806, -1.8501424771033896, -0.0, -0.0, -0.0, -0.0, -0.0, -3.552713678800501e-15, -3.552713678800501e-15]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# First implementation for K-means with sklearn \n",
    "# (using Euclidean distance without normalization)\n",
    "from sklearn.cluster import KMeans;\n",
    "import matplotlib.pyplot as pl\n",
    "n = range(1,10)\n",
    "kmeans = [KMeans(n_clusters=i) for i in n]\n",
    "kmeans\n",
    "score = [kmeans[i].fit(transformed_data).score(transformed_data) for i in range(len(kmeans))]\n",
    "print(score)\n",
    "pl.plot(n,score)\n",
    "pl.title('Elbow Curve')\n",
    "pl.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 0 0 ... 0 0 0]\n",
      "[[1.38987335e-04 1.08907978e+01]\n",
      " [1.38987335e-04 1.08907978e+01]\n",
      " [1.38987335e-04 1.08907978e+01]\n",
      " ...\n",
      " [1.38987335e-04 1.08907978e+01]\n",
      " [1.38987335e-04 1.08907978e+01]\n",
      " [1.38987296e-04 1.08907978e+01]]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "9787"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n_cluster = 2\n",
    "kmeans = KMeans(n_clusters=n_cluster, init='k-means++', n_init= 20, max_iter=300, n_jobs = None, algorithm=\"auto\")\n",
    "\n",
    "#cluster index vector\n",
    "index = kmeans.fit_predict(transformed_data)\n",
    "print(index)\n",
    "\n",
    "# Distance matrix\n",
    "dist = kmeans.fit_transform(transformed_data)\n",
    "print(dist)\n",
    "\n",
    "np.unique(kmeans.labels_)\n",
    "\n",
    "##DEBUGProcessedoutofpackages 9786\n",
    "##ThreadodcsserverINFOComposetypestatedoneComposedone 213\n",
    "##rootCMDusrlocalbinmonitorapachestatsshdevnull 1\n",
    "\n",
    "# number of 1: 213\n",
    "sum(i == 1 for i in kmeans.labels_)\n",
    "# number of 0: 9787\n",
    "sum(i == 0 for i in kmeans.labels_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9787"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Second implementation for K-means with sklearn\n",
    "# (Using Cosine similarity)\n",
    "from nltk.cluster import KMeansClusterer\n",
    "import nltk\n",
    "\n",
    "kclusterer = KMeansClusterer(n_cluster, distance=nltk.cluster.util.cosine_distance, repeats=25, avoid_empty_clusters= True)\n",
    "labels = kclusterer.cluster(transformed_data, assign_clusters=True)\n",
    "\n",
    "##DEBUGProcessedoutofpackages 9786\n",
    "##ThreadodcsserverINFOComposetypestatedoneComposedone 213\n",
    "##rootCMDusrlocalbinmonitorapachestatsshdevnull 1\n",
    "\n",
    "# number of 1: 213\n",
    "sum(i == 1 for i in labels)\n",
    "# number of 0: 9787\n",
    "sum(i == 0 for i in labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\martu\\Anaconda3\\lib\\importlib\\_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n",
      "C:\\Users\\martu\\Anaconda3\\lib\\site-packages\\sklearn\\cluster\\k_means_.py:972: ConvergenceWarning: Number of distinct clusters (1) found smaller than n_clusters (3). Possibly due to duplicate points in X.\n",
      "  return_n_iter=True)\n",
      "C:\\Users\\martu\\Anaconda3\\lib\\site-packages\\sompy\\visualization\\hitmap.py:37: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
      "  ax = self._fig.add_subplot(111)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# from sompy.visualization.hitmap import HitMapView\n",
    "# model.cluster(3)\n",
    "# hits  = HitMapView(10,10,\"Clustering\",text_size=7)\n",
    "# a=hits.show(model, labelsize=12)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# from sompy.visualization.mapview import View2D\n",
    "# view2D  = View2D(10,10,\"rand data\",text_size=10)\n",
    "# view2D.show(model, col_sz=4, which_dim=\"all\", denormalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# from sompy.visualization.bmuhits import BmuHitsView\n",
    "\n",
    "# vhts  = BmuHitsView(10,10,\"Hits Map\",text_size=7)\n",
    "# vhts.show(model, anotate=True, onlyzeros=False, labelsize=12, cmap=\"Greys\", logaritmic=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    " m = model.codebook.matrix.reshape([16, 16, transformed_data.shape[1]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "%qtconsole"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Measure Distances\n",
    "\n",
    "We want to generate some baseline summary statistics of our model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "distances = get_anomaly_score(transformed_data, 8, m)\n",
    "\n",
    "print(max(distances))\n",
    "print(min(distances))\n",
    "print(np.mean(distances))\n",
    "print(np.std(distances))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'plt' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-1-e6af1d43a3aa>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhist\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdistances\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'plt' is not defined"
     ]
    }
   ],
   "source": [
    "plt.hist(distances)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'np' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-2-d4dc52b47284>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mthreshold\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m3\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstd\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdistances\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdistances\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mthreshold\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'np' is not defined"
     ]
    }
   ],
   "source": [
    "threshold = 3*np.std(distances) + np.mean(distances)\n",
    "threshold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'threshold' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-3-91294fe955f7>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mthreshold\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m: name 'threshold' is not defined"
     ]
    }
   ],
   "source": [
    "threshold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'distances' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-4-a0f96ba01856>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mcount\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mj\u001b[0m \u001b[1;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdistances\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0mj\u001b[0m \u001b[1;33m>\u001b[0m \u001b[0mthreshold\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m         \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m         \u001b[0mcount\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'distances' is not defined"
     ]
    }
   ],
   "source": [
    "count = 0\n",
    "for i, j in enumerate(distances):\n",
    "    if j > threshold:\n",
    "        print(j, data.loc[i])\n",
    "        count += 1\n",
    "print(count)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'data' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-5-01920ed1bb5b>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalue_counts\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m: name 'data' is not defined"
     ]
    }
   ],
   "source": [
    "data.message.value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Test "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "infer(,m,'rootCMDusrlocalbinmonitorapachestatsshdevnull', data,threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "infer(w2vmodel,m,'DEBUGProcessedoutofpackages', data,threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "infer(w2vmodel,m,'ThreadodcsserverINFOComposetypestatedoneComposedone ', data,threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "infer(w2vmodel,m,'FSKSDNKSDNKSfdhfhfdhfdhfdhfdhfd  hfhf dlksfljscomLDN', data,threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "infer(w2vmodel,m,'this is not a log message',data,threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "infer(w2vmodel,m,'message',data,threshold)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
